﻿namespace Framework.Task
{
    /// <summary>
    /// 任务代理辅助器接口
    /// </summary>
    public interface ITaskAgent<T> where T : ITask
    {
        /// <summary>
        /// 获得任务
        /// </summary>
        T Task
        {
            get;
        }
        /// <summary>
        /// 初始化
        /// </summary>
        void Init();
        /// <summary>
        /// 开始任务
        /// </summary>
        /// <param name="task">要开始的任务</param>
        void Start(T task);
        /// <summary>
        /// 重置接口
        /// </summary>
        void Reset();
        /// <summary>
        /// 销毁接口
        /// </summary>
        void Destroy();
        /// <summary>
        /// 轮询接口
        /// </summary>
        /// <param name="frameTime">逻辑一帧时间</param>
        /// <param name="realTime">实际一帧时间</param>
        void Update(float frameTime, float realTime);
    }
}
